package com.ruicar.afs.cloud.basic.proceeds.mq.sender;

import com.ruicar.afs.cloud.basic.common.entity.BasicMainInfo;
import com.ruicar.afs.cloud.basic.proceeds.mq.fallback.ArriveSuccessFallBack;
import com.ruicar.afs.cloud.basic.proceeds.mq.fallback.ReceiptHandleCompleteFallBack;
import com.ruicar.afs.cloud.basic.proceeds.mq.fallback.SendContractActiveSuccessFallBack;
import com.ruicar.afs.cloud.basic.proceeds.mq.fallback.SendContractInfoSuccessFallBack;
import com.ruicar.afs.cloud.common.mq.finance.cancel.dto.CancelSuccessDto;
import com.ruicar.afs.cloud.common.mq.finance.cancel.dto.RefundSuccessDto;
import com.ruicar.afs.cloud.common.mq.finance.debit.dto.DebitSuccessDataDto;
import com.ruicar.afs.cloud.common.mq.finance.debit.dto.ReceiptHandleCompletePackageDto;
import com.ruicar.afs.cloud.common.mq.rabbit.anno.send.AfsRabbitMqClient;
import com.ruicar.afs.cloud.common.mq.rabbit.anno.send.AfsRabbitMqSender;
import com.ruicar.afs.cloud.common.mq.rabbit.message.AfsTransEntity;

/**
 * <p>Description: 发送数据到佣金系统</p>
 *
 * @author yaorui.zhang
 * @version 1.0
 * @date create on 2020-07-01 18:42
 */
@AfsRabbitMqClient
public interface CommissionSender {

    /**合同提前还款数据发送到佣金系统
     * @author yaorui.zhang
     * @param entity
     */
    @AfsRabbitMqSender(serverAlias = "${com.ruicar.afs.cloud.rabbitQueue.serverAliaAcs}"
            ,exchangeName = "${com.ruicar.afs.cloud.rabbitQueue.exchangeNameAcs}"
            ,enableOn = "${com.ruicar.afs.cloud.rabbitQueue.exchangeNameAcs}"
            ,queueName = "${com.ruicar.afs.cloud.rabbitQueue.queueNameAcs.yjdpWaibaoAsyncEarlypay}"
            ,fallBack = SendContractInfoSuccessFallBack.class
            ,afsMessage=false)
    void sendRepayMent(String entity);

    /**合同取消数据发送到佣金系统
     * @author yaorui.zhang
     * @param entity
     */
    @AfsRabbitMqSender(serverAlias = "${com.ruicar.afs.cloud.rabbitQueue.serverAliaAcs}"
            ,exchangeName = "${com.ruicar.afs.cloud.rabbitQueue.exchangeNameAcs}"
            ,queueName = "${com.ruicar.afs.cloud.rabbitQueue.queueNameAcs.yjdpWaibaoAsyncContractCancel}"
            ,enableOn = "${com.ruicar.afs.cloud.rabbitQueue.exchangeNameAcs}"
            ,fallBack = SendContractInfoSuccessFallBack.class
            ,afsMessage=false)
    void sendContractCancel(String entity);

    /**合同激活数据发送到佣金系统
     * @author yaorui.zhang
     * @param entity
     */
    @AfsRabbitMqSender(serverAlias = "${com.ruicar.afs.cloud.rabbitQueue.serverAliaAcs}"
            ,exchangeName = "${com.ruicar.afs.cloud.rabbitQueue.exchangeNameAcs}"
            ,queueName = "${com.ruicar.afs.cloud.rabbitQueue.queueNameAcs.yjdpWaibaoAsyncContractActived}"
            ,enableOn = "${com.ruicar.afs.cloud.rabbitQueue.exchangeNameAcs}"
            ,fallBack = SendContractInfoSuccessFallBack.class
            ,afsMessage=false)
    void sendContractActived(String entity);

}
